package com.kaluli.system.domain.entity;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public  abstract class AbstractDomainEntity <T extends java.io.Serializable> implements java.io.Serializable {



	public abstract T getId();

//	@Column( name = "zt",columnDefinition="INT default 1")
//	private ZT zt;	
//	
//	public AbstractDomainEntity() {
//		this.zt = ZT.EFFECTIVE;
//	}
//
//	
//	public ZT getZt() {
//		return zt;
//	}
//
//
//	public void setZt(ZT zt) {
//		this.zt = zt;
//	}


	@Override
	public int hashCode() {
		Long idValue = getId() == null ? 0L : getId().hashCode();
		int hash = 3377 * 11 + idValue.hashCode();
		return hash;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		return this.getClass().equals(obj.getClass())
				&& this.getId().equals(((AbstractDomainEntity) obj).getId()) ;
	}
}
